<template>
  <div>
    <div class="todo_item" v-for="(item,index) in todo_items" :key="index" :class="{ down: item.todo_checked}">
      <label >
        <input type="checkbox" :checked="item.todo_checked" @click="change_checked(item)">{{item.todo_text}}<span class="check_button "></span>
      </label>
    </div>
  </div>
</template>

<script>
export default {
  name: "todo_item",
  props:{
    todo_items:{
      type: Array,
      default: () => {
        return []
      }
    }
  },
  data:function (){
    return {
    }
  },
  methods:{
    change_checked:function (todo){
      todo.todo_checked = !todo.todo_checked;
      this.$emit('new_todo',todo);
    }
  },
  mounted() {
  },
}
</script>

<style scoped>

.todo_item{
  background: white;
  padding: 16px;
  margin: 10px 0px;
  border-radius: 8px;
  color: #626262;
  position: relative;
}

.todo_item input{
  margin-right: 16px;
  opacity: 0;
}

.todo_item label span.check_button{
  position: absolute;
  left: 15px;
}

.todo_item.down label{
  text-decoration: line-through;
  font-style: italic;
}

.todo_item label span.check_button::before, .todo_item label span.check_button::after{
  content: "";
  display: block;
  position: absolute;
  width: 18px;
  height: 18px;
  border-radius: 50%;
}

.todo_item label span.check_button::before{
  border: 1px solid #b382f9;
}

.todo_item label span.check_button::after{
  transition: 0.4s;
  background: #b382f9;
  transform: translate(1px,1px) scale(0.8);
  opacity: 0;
}


.todo_item input:checked+span.check_button::after{
  opacity: 1;
}

</style>